Marc ten Bosch
Miegakure
![Miegakure](miegakure.png)
Miegakure is a platform game where you explore the fourth dimension to solve puzzles. Our world is three-dimensional: width, depth, and height. But what if there was a fourth physical dimension that we cannot see, in addition to the other three?
N-Dimensional Rigid Body Dynamics
![N-Dimensional Rigid Body Dynamics](ndphysics.png)
I present a formulation for Rigid Body Dynamics that is independent of the dimension of the space. I describe the state and equations of motion of rigid bodies using geometric algebra. Using collision detection algorithms extended to nD I resolve collisions and contact between bodies. My implementation is 4D, but the techniques described here apply to any number of dimensions. I display these four-dimensional rigid bodies by taking a three-dimensional slice through them. I allow the user to manipulate these bodies in real-time.
Let's remove Quaternions from every 3D Engine
![Let's remove Quaternions from every 3D Engine (An Interactive Introduction to Rotors from Geometric Algebra)](quaternions.png)
A Video/Article Combo with Interactive Diagrams.
4D Toys
![4D Toys](4dtoys.png)
4D Toys is a box of toys from the fourth dimension. It turns out the rules of how objects bounce, slide, fall, spin and roll around can be generalized to any number of dimensions, and this toy lets you experience what that would look like.
- Powered by the first 4D Physics engine ever!
Exploring and Presenting a Game's Consequence-Space
![Exploring and Presenting a Game's Consequence-Space](consequencespace.png)
A talk at the PRACTICE game conference at NYU. How to explore and present the space that a game's mechanics create.
Designing to Reveal the Nature of the Universe
![Designing to Reveal the Nature of the Universe](designrevealuniverse.png)
A talk in collaboration with Jonathan Blow Any system of interactivity can of course be explored: If X happens, what are the consequences? What are all the ways in which pattern Y expresses itself, and to what do those expressions lead? By inspecting the structure of a system in this way, we can find the core ideas of the system, and see how those ideas illustrate fundamental truths of our universe.
We present a game design aesthetic that values looking for systems that express these truths in the cleanest possible way. We explain how this is different from more-traditional combinatoric design techniques; we show examples from our games and describe a method for applying the aesthetic in general.
Entropy Prototype
![Entropy](entropy.png)
A musical painting experience from one hundred miles above the earth. A continually evolving musical score underlies the creation of realistic cloud and land formations. Less of a game, more an experience that is meant to be savored. 5 person team including an artist and a composer.
- Made in 2 days for Global Game Jam
- IndieGames.com Best of Global Game Jam
PrometheusZ Prototype
![PrometheusZ](p.png)
Innovative Cooperative Shoot'em up. 1 person team / 3 months. PrometheusZ is a vertical shooter with a unique gameplay mechanic that gives it puzzle-like aspects. In PrometheusZ you can shoot a beam of light that attaches itself to certain spots on enemies and environments. You can use it to attack from the side or the back, grab onto/pull/spin other ships, destroy bullets and much more.
Restricted Coloring using Saliency-based Image Segmentation
![Restricted Coloring using Saliency-based Image Segmentation](restrictedcoloring.png)
Two different methods of restricting the number of colors used to draw a certain image, while preserving detail in salient regions. In both methods, images are segmented based on saliency data, assigning larger regions to less salient areas of the image, and filling each region with its mean color. (With Jae Lee, S.)
- Student Research Competition Grad-level finalist
Nonconvex Rigid Bodies with Stacking Implementation
![Nonconvex Rigid Bodies with Stacking Implementation](rigidbody.png)
Convex rigid bodies with collision, contact, friction (kinetic, static), stacking, and fracture. Implemented the Nonconvex Rigid Bodies with Stacking paper by Guendelman et Al.
Real-Time Hardware-Determined Feature Edges
![Real-Time Hardware-Determined Feature Edges](npr_edges.png)
Hardware silhouette detection and rendering. I implement and extend Morgan McGuire and John F. Hughes's Hardware-Determined Feature Edges, and introduce the notion of a "partial silhouette". Using the default algorithm, as the scene changes, different contour edges are identified, creating an unpleasant "popping" effect. To remedy this, I transform the discrete version of the XOR into a continuous version.
Real-Time Non-Photorealistic Paint Spreading using Stencil Volumes
![Real-Time Non Photorealistic Paint Spreading using Stencil Volumes](paintvolumes.png)
I borrow the concept of a stencil volume from shadow volumes and apply it to the simulation of a fluid spreading on a surface, without resorting to a texture-based approach. I introduce stencil paint volumes that grow in real-time using a physically-based system. Points inside the paint volumes are rendered in color, and those outside in black-and-white.
- Student Research Competition Undergrad-level finalist
- Developed for the game Orblitz
Non-photorealistic rendering of trees and smoke using billboards
![Non-photorealistic rendering of trees and smoke using billboards](npr_billboards.png)
I apply and extend Morgan McGuire, Andi Fein, and Colin Hartnett's Real-time Cartoon Rendering of Smoke to the rendering of Pen-and-Ink Trees. For trees, the goal is to mimic the style of Computer-Generated Pen-and-Ink Illustration of Trees by Deussen and Strothotte.
Non-photorealistic Shading
![Non-photorealistic Shading](npr_shading.png)
Researching and implementing NPR shading models such as Pen and Ink, Celshading, Gooch shading, Anisotropic lighting. Introducing "Goochel" shading, a combination of Gooch and cel-shading :) It applies the celshading step function to the full range lighting dot product (as opposed to the clamped dot product of Phong shading).
Raytracing / Photon mapping
![Raytracing / Photon mapping](photon.png)
Photon mapping is an extension of ray tracing that can handle Caustics and Diffuse Interreflection (Color Bleeding). Ray tracing using Local and global illumination models, reflection and refraction using Fresnel equations, shadows of transparent objects, and more...
Orblitz
![Orblitz](orblitz.png)
3D Physics Based Puzzle Game. 4 person team / 11 months. Orblitz is a 3D physics-based puzzle game, a cross between Marble Madness and Lemmings. Responsible for: Game/level design, Graphics code/shaders, Rigid-Body Physics, Gameplay, Art.
- 2006 Independent Games Festival Student Showcase Winner
- Creation and development of unique graphic style, presented at SIGGRAPH
- C/C++, Lua, OpenGl, Cg, SDL, Fmod
Advanced Animation and Modeling
![Advanced Animation and Modeling](animation.png)
At DigiPen, CS460 is divided into 4 coding projects: Skeletal animation; Path following and motion blending; Inverse Kinematics; and finally Rigid Body Dynamics. Subjects such as animation file formats, quaternions (interpolation, splines), and Catmull-Rom splines (my favorite kind :) ), are covered in the process. I was also the TA for the class, where I lectured about importing data from animation file formats, making an exporter for 3D Studio MAX, and other topics.
Crimson Legend
![Crimson Legend](crimsonlegend.png)
2D skeletal animation fighting game. 5 person team / 7 months. Crimson Legend is a fast-paced, two player only, 2D fighter featuring cool dark characters with outrageous powers and speed that encourages aggressive gameplay. Responsible for: Technical direction/design, scheduling of milestones and tasks.
- Development of skeletal animation tool used by artists to create all the characters, animations and other content
2D Skeletal Animation and Character Editor
![2D Skeletal Animation and Character Editor](skeletal2d.png)
Character and animation editor for Crimson Legend. Our goal was to create a 2D fighting game that did not require us to draw each individual frame of animation. We decided to design a 2D skeletal animation system, similar to what is done in 3D animation and modeling package such as Maya, but in 2D.
.eXegone
![.eXegone](exegone.png)
Digital art, skins, icons, photography. Making this site would be so much easier now that we don't have to split things into tables!
- HTML, PHP, MySQL, CSS, Javascript